package com.ccsu.mymarket.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ccsu.mymarket.entity.Book;
import com.ccsu.mymarket.entity.User;
import com.ccsu.mymarket.exception.MyException;

import java.util.List;
import java.util.Map;

public interface UserService extends IService<User> {


    /**
     * 登录
     * 使用用户发送的登录信息查询数据库，检验是否通过。
     * 通过后返回查询数据库得到的信息
     * 返回的对象和传入的对象是同一个,错了错了，信息不同步！
     * @param user
     * @return 该用户的信息
     */
    User checkLoginInfo(User user) throws MyException;

    /**
     * 注册 , 角色：1-普通用户 ，2-商家
     * @param data 用户(User类)基本信息，如为商家还需含有店铺基本信息
     * @return 是否成功创建用户
     */
    boolean registerIn(Map data) throws Exception;

    /**
     * @param sellerId 商家 id
     * @return 商家所绑定的店铺内，所有的 图书 id
     */
    List<Integer> getShopBookIds(Integer sellerId);

    /** 根据前台传入的店铺id修改商家及店铺信息
     * @param shopId
     * @param shopType
     * @param phone
     * @return
     */
    boolean updateSellerInfo(Integer shopId,Integer shopType,String phone);

    /**
     * 用来检查前端token是否合法
     * @param id 用户 id
     * @return 用户是否存在
     */
    boolean checkAcount(Integer id) throws MyException;

    /**
     * 修改用户信息
     * @param user
     * @return 是否修改成功
     */
    boolean updateUserInfo(User user);

    /**
     * 管理员修改密码、电话
     * @param user
     * @return
     */
    boolean updateUserByAdmin(User user);
}
